System and method for distributing foveated data in a network

ABSTRACT

A system and method for executing a computer program in a network. The system includes a surrogate proxy processor which, when executing the computer program, is programmed to receive at least one foveated image from at least one of the foveating proxy server and a further device that is connected to the foveating proxy server, wherein the foveating proxy server generates the at least one foveated image, and transmit the foveated image to at least one of the client computer and a another device. In addition, a system is provided which includes a foveating proxy server, and at least two surrogate proxy servers communicating with one another. At least one of the at least two surrogate proxy servers communicates with the foveating proxy server, and another one of the at least two proxy servers communicates with at least one of the client computer and a further device, wherein the at least two surrogate proxy servers are cascaded along a multi-hop portion of the network.

FIELD OF THE INVENTION

[0001] The present invention relates to methods and systems fordistributing foveated data packages in a network utilizing a surrogateproxy server. More particularly, this invention relates to methods andsystems which transmit images generated by a foveating proxy server,including very large images, over a “thinwire” (e.g., communicationarrangements and wires serving the Internet or any other network orapplication having bandwidth limitations) using a surrogate proxyserver.

BACKGROUND OF THE INVENTION

[0002] The Internet enables clients or users access to information inways never before possible over existing communications lines. Often,the client may desire to view and have access to relatively largeimages. For example, a client/viewer may wish to explore a map of aparticular geographic location. The entire map, at highest (i.e., full)level of resolution will likely require a pixel representation to beprovided on the display of the viewer that is beyond the size of theviewer screen in the highest resolution mode.

[0003] One conventional way to address this limitation is for anInternet server to pre-compute many smaller images of the originalimage. The smaller images may have a lower resolution (i.e., zoomed-out)views and/or portions of the original image. Most conventional imagearchive systems use this approach, which is less than optimal since nopreselected set of views can anticipate the needs of all users.

[0004] Some conventional map engines (see, e.g., URLshttp://www.mapquest.com and http://www.MapOnUs.com) use an approach inwhich the user may zoom and pan over a large image. However, thetransmission over the Internet involves significant bandwidthlimitations (i.e., the transmission is relatively slow). Therefore, amethod and system which allows a realtime visualization of large scaleimages over a “thinwire” model of computation is needed. In particular,it is desirable to optimize the model which includes an image server anda client viewer connected to one another by a low bandwidth line.

[0005] One approach to obtain and utilize multifoveated images in a“thinwire” environment which overcomes the above deficiencies isdescribed in U.S. Pat. No. 6,192,114 entitled “Apparatus and Method forRealtime Visualization Using User-Defined Dynamic, Multi-FoveatedImages”. The entire disclosure of this U.S. patent is incorporatedherein by reference. This approach provides an effective real-timevisualization over a “thin wire” with precision and flexibility, andallows the user to modify the position and shape of the basic fovealregions, the maximum resolution at the foveal region and the rate atwhich the resolution falls away. In this manner, the “thinwire” modelcan be optimized. Furthermore, this approach provides for the use of themultifoveated images that can be dynamically (or incrementally) updatedas a function of user input. This property is useful for solving thethinwire problem, since it is beneficial for the information to be“streamed” at the rate that optimally matches the bandwidth of thenetwork with the human capacity to absorb the visual information. Thus,dynamic foveation-based rendering (e.g., which transmits image detailson demand) can dramatically reduce bandwidth requirements for swift andresponsive viewing of the remote documents.

[0006] Conventional web servers and other electronic document serversgenerally do not support foveation. Consequently, the images that aredownloaded from these conventional servers tend to travel very slowlyover the low-bandwidth links.

[0007] A proxy document (e.g., web) server or foveating document servercan automatically convert images contained within those pages into thefoveated format. The foveating proxy server then transmits the foveatedimages to a client computer's electronic document viewer (e.g., webbrowser), and displays the converted pages with the foveated image,instead of the original static images. The foveated images are renderedin a manner that is appropriate for a foveal viewing, whereby theinitial low-resolution images are displayed as they are received, andhigher-resolution “foveas” are requested, received and updated inresponse to user input.

[0008] However, low-bandwidth communications can still present asignificant slow-down for transmission of the images, especially theimages embedded within the electronic documents.

SUMMARY OF THE INVENTION

[0009] One of the objects of the present invention is to allow arealtime visualization of large scale images over a “thinwire” model ofcomputation.

[0010] The present invention overcomes the disadvantages of prior artmethods and systems by utilizing a foveating system that transmits oneor more dynamic multifoveated images (i.e., a variable resolution image)from a foveating proxy server to a client computer or viewer via one ormore surrogate proxy servers. In this manner, a client computer is ableto request only those portions of an image that the user of the clientcomputer desires to view rather than having to download the entireimage. Accordingly, the foveated images can be transmitted to berendered by the client computer in a manner appropriate for fovealviewing. Specifically, low-resolution images are initially sent to beviewed by the client computer as they are received. Thereafter, higherresolution portions of the original image can be sent in response to theuser's request(s) and can be displayed by the client computer as anupdate to the displayed image. Nevertheless, the system according to theinvention can be provided to transmit an entire image at once or as asequence of foveated images. In addition, the invention can provide thatonly images and portions of images that are specifically requested aresent and that the original images can compressed or enhanced by thesystem. It can also be provided to automatically update a low-resolutionimage received by the client computer with more relevant, higherresolution portions.

[0011] Multiple web browsers may reside on the same high-speed network,and can reference the same web page via the same auto-foveating proxy. Asurrogate proxy server in the browser's network can be provided tominimize the re-transmission of the same image over the low-bandwidthlink. When the subsequent web browsers reference the same web page viathe same foveating proxy server, the portions that have already beentransferred into the cache of the surrogate proxy server download at avery quick rate. For the portions that have not been transferred intothe cache, the surrogate proxy server retrieves the foveated images fromthe foveating proxy server so as to quickly transmit these images to theweb browser of the client computer.

[0012] The surrogate proxies can be cascaded along multi-hoplow-bandwidth networks. In addition, a protocol for the transmission ofthe foveated documents and images, from the foveating proxy server tothe surrogate proxy server, can be provided to multiplex a logicalnetwork connection over multiple transactions. Thus, the cost ofestablishing a surrogate's connection can be amortized, and the networktraffic congestion may be further reduced. The user interface componentof the present invention may provide a variety of ways for the user todirect this multifoveation process in real time. In context of thepresent invention, the term “dynamic” can mean that the image resolutionis also varying over time.

[0013] Thus, the present invention may provide a model which includes animage server and a client viewer connected to one another via a lowbandwidth line. In this manner, the bandwidth from the server to theclient can be reduced in exchange for a modest increase of the availablebandwidth to provide the data and images from the client to the server.

[0014] One of the advantages of the present invention is that it canprovide a new standard of performance that can be achieved bylarge-scale image servers on the World Wide Web at the currently usedbandwidths, or those bandwidths that may be available in the nearfuture. In addition, the present invention has additional advantagesover the traditional forms of the progressive transmission by preferablyproviding a choice of foveation techniques, e.g., to be used accordingto the available bandwidth.

[0015] Another advantage of the present invention is that the server maytransmit only the information which has not yet been received. This hasthe advantage over the prior art methods and systems in that thecommunication traffic can be reduced. Another advantage of the systemand method according to the present invention is that an improvedperformance is achieved when they are used in a multi-hop network and/orprovided with multiplexing communication protocols.

[0016] The surrogate proxy server, when it is provided for the executionof a computer program in a network, includes a foveating proxy serverand a client computer. In particular, the surrogate proxy server mayinclude a memory device, a storage device for storing the computerprogram thereon, as well as a processor. The processor preferablymaintains a storage device (e.g., a cache) of at least one foveatedimage, and receives a request for the foveated image from the clientcomputer. The processor may then request the foveated image if thefoveated image is not yet maintained in the storage device, and thenreceive the foveated image from the foveating proxy server. At suchtime, the processor can cause the foveated image to be stored in thestorage device. Thereafter, the processor can transmit the foveatedimage to the client computer.

[0017] The processor of the surrogate proxy server can receive a requestfor a data package (e.g., an HTML document) containing at least oneimage from the client computer, and then request a foveated data packageto be provided by a foveating proxy server. When the processor receivesthe foveated data package from the foveating proxy server, it maytransmit the foveated data package to the client computer.

[0018] According to one exemplary embodiment of the present invention,when the processor of the surrogate proxy server receives a request fora data package containing at least one image from the client computer,the processor receives such request and rewrites the data package (e.g.,to a storage device) as a foveated data package. Then, the surrogateproxy server can transmit the foveated data package to the clientcomputer.

[0019] The surrogate proxy server which includes a network protocolprocessing element can also be provided. In particular, such a networkprotocol processing element can transmit the foveated data package usinga TCP/IP protocol, and may forward the foveated data package to one ormore client computers via the Internet. The surrogate proxy server canalso execute software programs that determine the capacity of thenetwork connection, to provide the images and/or description to theclient computer, and then select an optimal foveating technique tominimize the transmission bandwidth.

[0020] It may be preferable to arrange the surrogate proxy server suchthat the foveating proxy server is situated adjacent to a thinwireportion of the network. Further benefits of the method and system of thepresent invention can be obtained by providing the processor whichcommunicates with the foveating proxy server according to a multiplexedprotocol. In addition, it is beneficial for the foveating system toinclude a foveating proxy server and at least two surrogate proxyservers cascaded along a multi-hop portion of the network.

[0021] Further objects and advantages of the invention will becomeapparent from a consideration of the drawings, ensuing description, andappended claims.

BREIF DESCRIPTION OF THE DRAWINGS

[0022] A more complete understanding of the present invention may beobtained from consideration of the following descriptions, inconjunction with the drawings, of which:

[0023]FIG. 1 is an exemplary embodiment of a system according to thepresent invention, which includes a client computer, a document server,a surrogate proxy server and a foveating proxy server;

[0024]FIG. 2 is the system shown in FIG. 1 provided in a specificthinwire application without a surrogate proxy server being connectedthereto;

[0025]FIG. 3 is the system shown in FIG. 1 provided in a specificthinwire application with the surrogate proxy server being connectedthereto;

[0026]FIG. 4 is a first exemplary flowchart of a method according to thepresent invention which can be executed by the system of FIG. 1 fordistributing foveated data packages;

[0027]FIG. 5 is a second exemplary flowchart of the method shown in FIG.4;

[0028]FIG. 6 is a first exemplary flowchart of another variation of themethod of the present invention for distributing foveated data packageswhich can also be executed by the system of FIG. 1;

[0029]FIG. 7 is a second exemplary flowchart of the method shown in FIG.6; and

[0030]FIG. 8 is another embodiment of the system according to thepresent invention.

[0031] Throughout the figures, the same reference numerals andcharacters, unless otherwise stated, are used to denote like features,elements, components or portions of the illustrated embodiments.

DETAILED DESCRIPTION OF THE INVENTION

[0032] In order to solve the aforementioned problems, methods andsystems for distributing data packages are provided as shall bedescribed below in further detail.

[0033]FIG. 1 depicts an overview of components in an exemplaryembodiment of the system according to the present invention. In thisexemplary system, at least one client computer 103, at least one dataserver 104, a foveating proxy server 101 and a surrogate proxy server102 are all interconnected via a network 100. The foveating proxy server101 includes a storage device 111, a memory device 112 and a computerprocessing device 110. The storage device 111 can include, for example,an internal hard disk, tape cartridge, CD-ROM, etc., or any combinationthereof. It is preferable for the storage device 111 to provide fasteraccess and greater storage capacity. The memory device 112 can be, forexample, a collection of RAM chips, ROM devices, FLASH cards, etc.

[0034]FIG. 2 shows an exemplary embodiment of the foveating proxy server101 which transmits images over a low-bandwidth (or thinwire)communication connection. The foveating proxy server 101 is preferablyprovided on a network where a “thinwire” communication exists betweenthe data server 104 (e.g., a Web server) and the client computer 103.For example, and as shown in FIG. 1, a “thinwire” communication canexist in the networks where high communication rates for carrying largecapacity of data traffic (i.e., relative to other portions of thenetwork) between the data server 104 and the client computer 103 are notavailable.

[0035] Turning back to FIG. 1, the processing device 110 of thefoveating proxy server 101 includes a network protocol processingelement 115 for providing communications between other devices on thenetwork 100. The processing device 110 can be implemented using a singlemicroprocessor chip (e.g., an Intel Pentium chip), printed circuit boardhaving such chip, a plurality of boards with a multiplicity of chips,etc or a combination of each. It is preferable to provide a faster speedcapability of the processing device 110. The network protocol processingelement 115 can be implemented as a separate “software” module (e.g., aprogram, sub-process, etc.) whose instructions are executed by theprocessing device 110. Typical examples of protocols utilized by thenetwork protocol processing element 115 include TCP/IP (the TransmissionCentral Protocol/Internet Protocol) or UDP (the User Datagram Protocol).

[0036] The processing device 110 may also include a data packagerewriting engine 113. Alternatively, the data package rewriting engine113 can be provided separately from the processing device 113, as can beappreciated by one having ordinary skill in the art. The data packagerewriting engine 113 is provided for rewriting a data package, such asthe HTML document, into a foveated format. In particular, the datapackage rewriting engine 113 rewrites the data package (such as an HTMLsource file or document) by replacing references to conventional inlinedimages (e.g., <img>tags) with references to a foveated image stored atthe foveating proxy server. The foveated data package can be a portionof a data package, such as a document or image or portions thereof, thatresults from the foveation process. The term foveated data package isused interchangeably within for the terms foveated document and foveatedimage and portions thereof.

[0037] Each reference to the foveated image (e.g., a “foveated link”)can include appropriate directives for the client computer 103 to startthe execution of a foveating renderer, such as an <applet> tag. Thefoveated link can be provided with arguments so as to encode theidentity or address of the foveating proxy server 101 that provide thefoveated images and the local alias of the corresponding image. Inaddition, the foveated link can include information about the identityor location of the foveating renderer, and/or the protocol informationspecific to the foveation technique (e.g., to specify what resolution ofimage is requested, the portion of the image requested, etc.). It shouldbe understood that the foveating renderer can be implemented as a Java™applet, and/or as a plugin for a browser of the client computer 103.

[0038] As is known to those having ordinary skill in the art, an“applet” is a program that can be written in Java programming language,which may be included in an HTML page in substantially the same manneras the image. When a technology-enabled browser is used to view a pagethat contains the applet, the applet's code is transferred to the clientcomputer 103, and executed by the client computer's Java™ VirtualMachine (JVM) (i.e., in the case when the Java™ implemented code isutilized). Protocol information can be specific to provide the foveationtechnique as can be understood by one having ordinary skill in the art.

[0039] The processing device 110 includes an image foveation engine 114which can be used for creating the foveated images based on the imagesreferenced in the data packages (e.g., rewritten as the foveateddocuments). Alternatively, the image foveation engine 114 can beprovided separately from the processing device 110. When a data packageis “rewritten” by the rewriting engine 113, the images referenced by thedata package are acquired by the foveating proxy server 101 andconverted into an internal format that is compatible with foveation.Certain exemplary foveation techniques are described in greater detailin U.S. Pat. No. 6,192,114 to Yap et. al. as described above, andincorporated herein by reference. The foveated images can be stored inthe storage 111 device of the foveating proxy server 101.

[0040] In one exemplary embodiment of the present invention, thefoveated images can be assigned a local alias for identification. Anumber of schemes can be utilized to generate aliases. In one particularscheme, the conventional image's network address or the universalresource locator (“URL”) are embedded in its foveal alias. For example,the foveal alias for a non-foveated image stored at a network addresssuch as “http://host/path,” which is to be stored on a server named“server,” can be represented as “server/http/host/path”. This schemepermits the foveating proxy server 101 to construct the original image'sURL from its alias, thereby eliminating the need for the rewritingengine 113 to inform the image foveation engine 114 of the alias priorto performing its functions.

[0041] In operation, when the client computer 103 accesses the foveateddata package and/or document through the foveating proxy server 191, andseeks to access a foveated image provided as a link on the foveateddocument, the foveating render installed on the client computer 103 canbe invoked. At that time, the foveating renderer establishes aconnection with the appropriate foveating proxy server 101 to obtain animage identified by the local alias on the foveated document, andretrieves the foveated image stored at the data server 104. Furtherrelated foveated images can be obtained by the client computer 103depending on the degree of the image foveation provided by the foveatingproxy server and the specific foveation technique employed.

[0042] In a preferred embodiment of the present invention, the foveatingproxy server 101 can be a standard workstation or Pentium basedmicroprocessor system. Also, the TCP/IP processing performed by thedevices connected on the network 100 may be used to implement thenetwork protocol processing element 115 because it would likely reducethe complexity of the implementation. Although the TCP/IP implementationis one of the simplest to be used, it is also possible to utilize theUDP protocol, subject to some basic and known design changes. Therelative advantage of using the TCP/IP implementation as opposed to theUDP implementation is to be determined empirically. An additionaladvantage of using these standard network protocols is that thefoveating proxy server 101 can be constructed without having anyknowledge regarding the construction of the client computer(s) 103. Theexemplary embodiment of the present invention may also include anoperating system running on the processing device 110 of the foveatingproxy server 101 (e.g., Windows 95, Unix, Windows NT, etc).

[0043] As indicated above, the foveating proxy server 101 is connectedto the client computer 103 and the data server 104 via the network 100.Typical examples of the data server 104 include an image archive serverand a map server (e.g., connected to the Internet or the World WideWeb). In addition, if the foveating proxy server 101 is connected toother devices on the network 100 (such as to the client computer 103 ordata server 104) via a telephone system line or other communicationssystems/lines not carrying digital pulses, each of the foveating proxyserver 101, the client computer 103 and the data server 104 can also beprovided with a communications transceiver device (not shown). Thiscommunications transceiver device can convert digital signals generatedby the respective device into the frequency/signals carried by thecommunication line, and may also convert the frequency/signals receivedfrom such line into digital pulses, thus allowing the ability tofacilitate digital communication.

[0044] In addition, a surrogate proxy server 102 can be provided on thenetwork 100. The surrogate proxy server 102 may include a storage device111′, a memory device 112′ and a processing device 110′. The processingdevice 110′ of the surrogate proxy server 102 includes a networkprocessing element 115′ for communicating with other devices on thenetwork 100. In addition, the surrogate proxy server 102 can include asurrogate redirection engine 116 which can be implemented at theprocessing device 110′ or separately therefrom. The surrogateredirection engine 116 provides a secondary caching proxy to the imagefoveation engine 114′ as well as to rewriting engine of the foveatingproxy server 101.

[0045] The surrogate proxy server 102 generally acts as a networkconnection system for the client computer 103 when accessing datapackages (such as HTML documents) on the network 100, and can appear tothe client computer 103 as a conventional network proxy. Upon request bythe client computer 103, the surrogate proxy server 102 can providerequested portions of an image created by a foveation process in lieu ofthe entire image. The surrogate direction engine 116′ can manage thestorage of portions of foveated documents and images stored on thestorage device 111′ of the surrogate proxy server 102. In operation,when the client computer 103 requests the foveated document, thesurrogate redirection engine 116′ handles (e.g., by proxy) the requestfor the foveated document or portions of the foveated document if theyare stored in the storage device 111′ of the surrogate proxy server 102.If the requested foveated document or image is not stored in the storagedevice 111′ of the surrogate proxy server 102, the surrogate proxyserver 102 requests this information from the foveating proxy server101. Similarly, when the client computer 103 requests a non-foveateddocument, the surrogate proxy server 102 can forward this request to thefoveating proxy server 101 for foveation processing. Upon the surrogateproxy server's 102 receipt of a new foveated document or portions of thefoveated document, the surrogate proxy server stores this information inthe storage device 111′.

[0046] In addition, a protocol for the transmission of the foveateddocuments and images and portions thereof from the foveating proxyserver 101 to the surrogate proxy server 102 can be provided via thenetwork 100. This is done to multiplex a logical network connection overmultiple transactions, and thus amortize the cost (e.g. systemsresources, time delay, etc.) for establishing a surrrogate's connection,and further reduce the congestion of network traffic. It can beappreciated by one having ordinary skill in the art that a singlefull-duplex link can be multiplexed to implement multiple full-duplexconversations between the foveating proxy server 101 and the surrogateproxy server 102. Each transfer for a conversation between the foveatingproxy server 101 and the surrogate proxy server 102, in eitherdirection, can be proceeded by a control message that contains adiscriminator to specify each particular conversation. Control messagescan also be used to manage the link's lifecycle by, e.g., establishing anew conversation.

[0047]FIG. 3 shows an example of a communicative connection of thesurrogate proxy server 102 and the foveating proxy server 101, which isprovided to transmit the images or documents over a low-bandwidthconnection. The surrogate proxy server 102 is preferably provided on anetwork where a “thinwire” exists between the foveating proxy server 101and the client computer 103. A separate server can efficientlydistribute the images over a portion of the network containing thefoveating proxy server 101, and separated from the data server 104 bythe thinwire.

[0048] In an alternative embodiment of the present invention, thesurrogate proxy server 102 can also include a rewriting engine 113′and/or a data foveating engine 114′ for handling of the foveationprocessing of the document or image. This is the case when the networktraffic conditions and system processing requirements for the requestedfoveation (i.e., between the surrogate proxy server 102 and foveatingproxy server 101) are such that a local processing by the surrogateproxy server 102 is more efficient than the processing performed by thefoveating proxy server 101. The processing resources of the surrogateproxy server 102 may be utilized further when access to cached imagesand documents is provided in this application. Also, the processing andconversion of the documents into the foveated images and documents ispreferably performed by the processing device 110 or the foveating proxyserver 101 for greater efficiency.

[0049] In another alternative embodiment of the present invention, theprocessing device 110, 110′ of either the surrogate proxy server 102 orthe foveating proxy server 101, can be provided using an optimizingsoftware which generates a compact coding such that the lowestresolution base image provides the most useful results, and thatsubsequent updates of the higher resolution images are efficient.Accordingly, the optimizing software can be provided to dynamicallyselect the appropriate foveating algorithm according to the particulartypes of data, documents and/or images being transmitted as well ascharacteristics of the network, such as the bandwidth of a particularlink. For example, some images may have sufficiently low informationassociated therewith, such as a blue rectangle having consistentintensity and color. Accordingly, a non-foveated image can be compressedwith conventional compression techniques to provide a full resolutionimage that is more compact than a foveated image and can thus betransmitted in its entirety. One embodiment of the system can beprovided with several compression techniques, including foveationtechniques, for compressing the image to be transmitted. Aftercompression of the image using the several techniques, the processingdevice 110, 110′ can make a determination as to which result is optimaland transmit the data according to the chosen technique. Alternatively,the processing device 110, 110′ can be provided for receiving a commandfrom the client computer 103, such as a right-click of a mouse button,to retrieve the entire image or document at a particular resolution.Accordingly, the processing device 110, 110′ can make a determination asto which technique is optimal for transmission of the data at therequested resolution.

[0050] The foveating proxy server 101 can determine an appropriatetechnique of foveation to be used or an appropriate form of imagecompression to be applied, if any. For example, the foveating proxyserver 101 can provide a throughput analysis of the transmission mediumto determine the optimal technique for transmission for a given size ofthe image to be transmitted. Alternatively, a list of links or networkaddresses with associated bandwidths can be provided. For example, thoseconnections that are unknown can be designated as slow by default.

[0051]FIG. 4 illustrates an exemplary flowchart for a method 400 ofdistributing foveated data packages or documents in a network accordingto the present invention, which can be executed by the system of FIG. 1.In step 401 of the method, the surrogate proxy server 102 receives arequest for a foveated image or document from the client computer 103.As indicated above, the surrogate proxy server 102 can utilizeconventional means of transmitting and receiving data on the network100, and may act as a network proxy for the client computer 103. In step402, and upon the receipt of the request for the foveated image ordocument, the foveation redirector engine 116—which manages the foveateddocuments and images in the storage device 111′ of the surrogate proxyserver 102—determines whether the storage device 111′ has the dataassociated with the foveated image or document. The foveation redirectorengine 116 can employ a conventional database management device forsearching the storage device, or it may reference a dynamic fileallocation table for the storage device 111′.

[0052] If the foveation redirector engine 116 returns a positive resultfrom its search of the storage device 111′, in step 403, the surrogateproxy server 102 transmits the foveated document or image to the clientcomputer 103. Conventional transmissions techniques can be employed forthe transmission of such data. If the foveation redirector engine 116returns a negative result from its search of the storage device 111, instep 404, the surrogate proxy server 102 requests the foveated image ordocument from the foveating proxy server 101. Such request can be aconventional HTML “get” request and/or a specialized query as understoodby one having ordinary skill in the art. Following the request, in step404, the surrogate proxy server 102 receives the requested foveatedimage or document from the foveating proxy server 101 (step 405). Uponthe receipt of the document or image, the surrogate proxy server 102 canrecord the document or image in its storage device 111. Thereafter, thesurrogate proxy server 102 can perform step 403 whereby the surrogateproxy server 102 transmits the foveated document or image to the clientcomputer 103. After step 403, the surrogate proxy server 102 can receiveanother request from the client computer 103 or a different request fromanother client computer 103. When all requests for the images and/ordocuments have been addressed, the processing shown in FIG. 4 iscompleted.

[0053]FIG. 5 shows a flowchart showing an alternative implementation ofthe method shown in FIG. 4. In this implementation, after the surrogateproxy server 102 receives a request from the client computer 103 for thefoveated image or document, step 501 is provided whereby the surrogateproxy server 102 makes a determination as to the size of the bandwidthrequired of the communication link between the client computer 103 andthe data server 104, based on the cost of obtaining the full image ordocument from the data server 104 (as the original source of such data).If a sufficient bandwidth is not available, the method shown in FIG. 5returns to step 602 to determine whether the requested image or documentis in the storage device 111′ of the surrogate proxy server 102.However, if a sufficient bandwidth is available, in step 502, thesurrogate proxy server 102 can request the original image or documentfrom the data server 104. Then, in step 503, the surrogate proxy server102 receives the image or document from the data server 104, and thentransmits the image or documents to the client computer 103 in step 403.

[0054]FIG. 6 shows a flowchart of another embodiment of the method ofdistributing foveated data from the perspective of the foveating proxyserver 101 according to the present invention. In step 601, thefoveating proxy server 101 receives a request from the client computer103 or the surrogate proxy server 102 for the foveated or non-foveateddocument or image, or for portions thereof. Then, in step 602 (which issimilar to step 402), the foveating proxy server 101 determines whetherthe requested foveated or non-foveated document or image is stored inthe storage device 111 of the foveating proxy server 101. Step 602 canbe included as a software module of the foveating proxy server 101, orprovided as a separate storage management engine (not shown), andexecute conventional search techniques to search for a document in adatabase or dynamic file allocation table.

[0055] If the foveating proxy server 101 returns a positive result fromits search of the storage device 111, the foveating proxy server 101transmits the document or image to the requesting client computer 103 orthe surrogate proxy server 102 in step 607. If the foveating proxyserver 101 returns a negative result from its search of the storagedevice 111, the foveating proxy server 101 requests the original imageor document from the data server 104 where the document or imageresides, as indicated by the network address of the requested documentor image (step 603). Such request can be a conventional HTML “get”request, or a specialized query. In step 604, the foveating proxy server101 receives the document or image from the data server 104.

[0056] In step 605, the foveating proxy server 101 foveates the documentor image according to conventional foveation techniques as known in theart, or as described in U.S. Pat. No. 6,192,114. After step 605, thefoveating proxy server 101 can record the original or foveated documentor image so as to more quickly satisfy any future requests (step 606).Also, after step 605, the foveating proxy server 101 can transmit thefoveated data package (i.e., foveated document or image, or portionsthereof) to the requesting client computer 103 or the surrogate proxyserver 102 (step 607).

[0057]FIG. 7 shows a flowchart providing an alternative implementationof the method shown in FIG. 6. In this implementation, after thefoveating proxy server 101 receives a request for an image or document,in step 701, the foveating proxy server 101 makes a determination as tothe bandwidth of the communication link between the client computer 103(or the surrogate proxy server 102) and the data server 104, as well asthe cost of obtaining the full image from data server 104 as theoriginal image source. If sufficient bandwidth is not available, themethod can return to step 602 to determine whether the requested imageor document is in the storage device 111 of the foveating proxy server101. If sufficient bandwidth is available, the foveating proxy server101 can request the original image or document from the data server 104in step 702. Accordingly, in step 703, the foveating proxy server 101receives the image or document from the data server 104. Thereafter, theimage can be transmitted to the client computer 103 in step 607.

[0058]FIG. 8 shows an exemplary implementation of the foveating proxyserver 101, and at least two surrogate proxy servers 102 provided on amulti-hop network. As shown in FIG. 8, more than one surrogate proxyservers 102 can be cascaded along the multi-hop portion of a network,where more than one thinwire sections may require multiple proxy serversto provide a greater transmission efficiency.

[0059] The invention has been described in connection with certainpreferred embodiments. It will be appreciated that those skilled in theart can modify such embodiments without departing from the scope andspirit of the invention that is set forth in the appended claims.Accordingly, these descriptions are to be construed as illustrative onlyand are for the purpose of enabling those skilled in the art with theknowledge needed for carrying out the best mode of the invention. Theexclusive use of all modifications and equivalents are reserved ascovered by the present description and are understood to be within thescope of the appended claims.

1. A surrogate proxy arrangement for executing a computer program in anetwork which has thereon a foveating proxy server and a clientcomputer, comprising: a processor which, when executing the computerprogram, is programmed to: receive at least one foveated image from atleast one of the foveating proxy server and a further device that isconnected to the foveating proxy server, wherein the foveating proxyserver generates the at least one foveated image, and transmit thefoveated image to at least one of the client computer and a anotherdevice.
 2. The surrogate proxy arrangement according to claim 1,wherein, when executing the computer program, the processor isprogrammed to: receive a request for a data package containing arequested image from the client computer, request at least one of thefoveated image and a foveated data package containing the foveated imagefrom the foveating proxy server, receive at least one of the foveatedimage and the foveated data package from the foveating proxy server, andtransmit the at least one of the foveated image and the foveated datapackage to the client computer.
 3. The surrogate proxy arrangementaccording to claim 2, wherein the data package is an HTML document. 4.The surrogate proxy arrangement according to claim 2, wherein, whenexecuting the computer program, the processor is programmed tocommunicate with the foveating proxy server according to a multiplexedprotocol.
 5. The surrogate proxy arrangement according to claim 2,further comprising: a rewriting engine which converts at least one datapackage into the foveated data package.
 6. The surrogate proxyarrangement according to claim 5, further comprising: an image foveatingengine which foveates the requested images into the at least onefoveated image.
 7. The surrogate proxy arrangement according to claim 1,wherein, when executing the computer program, the processor isprogrammed to receive a request for an image from the client computer;and access a storage device to determine if at least one foveated imageis stored thereon.
 8. The surrogate proxy arrangement according to claim1, wherein, when executing the computer program, the processor isprogrammed to request the foveated image if the foveated image is notstored in the storage device.
 9. The surrogate proxy arrangementaccording to claim 1, wherein, when executing the computer program, theprocessor is programmed to: receive a request for a data packagecontaining the requested image from the client computer and obtain thedata package, rewrite the data package as a foveated data package, andtransmit the foveated data package to the client computer.
 10. Thesurrogate proxy arrangement according to claim 1, wherein, whenexecuting the computer program, the processor is programmed to: receivea request for an image from the client computer and obtain the image,rewrite the image as the foveated image, and transmit the foveated imageto the client computer.
 11. The surrogate proxy arrangement according toclaim 1, further comprising a storage device wherein, when executing thecomputer program, the processor maintains the at least one of thefoveated data package and foveated image in the storage device.
 12. Thesurrogate proxy arrangement according to claim 1, wherein the clientcomputer communicates with the foveating proxy server via a networkconnection, and wherein, when executing the computer program, theprocessor is programmed to determine a transmission rate of the networkconnection and to select a foveating technique to minimize atransmission bandwidth based on the transmission rate.
 13. The surrogateproxy arrangement according to claim 1, wherein the foveating proxyserver is connected to the network via a thinwire portion of thenetwork.
 14. The surrogate proxy arrangement according to claim 1,further comprising at least one additional surrogate proxy arrangement,wherein at least two of the at least one additional surrogate proxyarrangement and the surrogate proxy arrangement are communicating withone another, at least one of the surrogate proxy arrangementscommunicating with the foveating proxy server, and another one of thesurrogate proxy arrangements communicating with at least one of theclient computer and a further device, wherein at least two of thesurrogate proxy arrangements are cascaded along a multi-hop portion ofthe network.
 15. A foveating system for executing a computer program ina network including a server computer and a client computer, comprising:a surrogate proxy arrangement including a processor which, whenexecuting the computer program, is programmed to receive at least onefoveated image from at least one of the foveating proxy server and afurther device that is connected to the foveating proxy server, whereinthe foveating proxy server generates the at least one foveated image,and transmit the foveated image to at least one of the client computerand a another device.
 16. A foveating system for executing a computerprogram in a network including a server computer and a client computer,comprising: a foveating proxy server; and at least two surrogate proxyservers communicating with one another, at least one of the at least twosurrogate proxy servers configured to receive an at least one foveatedimage from at least one of the foveating proxy server and a anotherdevice, and another one of the at least two proxy servers configured totransmit the at least one foveated image to at least one of the clientcomputer and a further device, wherein the at least two surrogate proxyservers are cascaded along a multi-hop portion of the network.
 17. Thefoveating system according to claim 16, wherein each surrogate proxyserver comprises a processor which, when executing the computer program,is programmed to: receive at least one foveated image from at least oneof the foveating proxy server and a further device that is connected tothe foveating proxy server, wherein the foveating proxy server generatesthe at least one foveated image, and transmit the foveated image to atleast one of the client computer and a another device.
 18. The foveatingsystem according to claim 17, wherein, when executing the computerprogram, the processor is programmed to: receive a request for a datapackage containing the requested image from the client computer, requestat least one of the foveated image and a foveated data packagecontaining the foveated image from the foveating proxy server, receiveat least one of the foveated image and the foveated data package fromthe foveating proxy server, and transmit the at least one of thefoveated image and the foveated data package to the client computer. 19.The surrogate proxy arrangement according to claim 18, wherein the datapackage is an HTML document.
 20. The surrogate proxy arrangementaccording to claim 18, wherein, when executing the computer program, theprocessor is programmed to communicate with the foveating proxy serveraccording to a multiplexed protocol.
 21. The surrogate proxy arrangementaccording to claim 18, further comprising: a rewriting engine whichconverts at least one data package into the foveated data package. 22.The surrogate proxy arrangement according to claim 18, furthercomprising: an image foveating engine which foveates images into the atleast one foveated image.
 23. The surrogate proxy arrangement accordingto claim 18, wherein, when executing the computer program, the processoris programmed to receive a request for an image from the clientcomputer; and access a storage device to determine if at least onefoveated image is stored thereon.
 24. The surrogate proxy arrangementaccording to claim 18, wherein, when executing the computer program, theprocessor is programmed to request the foveated image if the foveatedimage is not stored in the storage device.
 25. The surrogate proxyarrangement according to claim 18, wherein, when executing the computerprogram, the processor is programmed to: receive a request for a datapackage containing the requested image from the client computer andobtain the data package, rewrite the data package as a foveated datapackage, and transmit the foveated data package to the client computer.26. The surrogate proxy arrangement according to claim 18, wherein, whenexecuting the computer program, the processor is programmed to: receivea request for an image from the client computer and obtain the image,rewrite the image as the foveated image, and transmit the foveated imageto the client computer.
 27. The surrogate proxy arrangement according toclaim 18, further comprising a storage device wherein, when executingthe computer program, the processor maintains the at least one of thefoveated data package and foveated image in the storage device.
 28. Thesurrogate proxy arrangement according to claim 18, wherein the clientcomputer communicates with the foveating proxy server via a networkconnection, and wherein, when executing the computer program, theprocessor is programmed to determine a transmission rate of the networkconnection and to select a foveating technique to minimize atransmission bandwidth based on the transmission rate.
 29. The surrogateproxy arrangement according to claim 18, wherein the processor isconnected to the network via a thinwire portion of the network.
 30. Amethod of distributing foveated data packages in a network which hasthereon a foveating proxy server and a client computer comprising:receiving at least one foveated image from at least one of the foveatingproxy server and a further device that is connected to the foveatingproxy server, wherein the foveating proxy server generates the at leastone foveated image, and transmitting the foveated image to at least oneof the client computer and a another device.
 31. The method ofdistributing foveated data packages according to claim 30, furthercomprising: receiving a request for a data package containing arequested image from the client computer, requesting at least one of thefoveated image and a foveated data package containing the foveated imagefrom the foveating proxy server, receiving at least one of the foveatedimage and the foveated data package from the foveating proxy server, andtransmitting the at least one of the foveated image and the foveateddata package to the client computer.
 32. The method of distributingfoveated data packages according to claim 31, wherein the data packageis an HTML document.
 33. The method of distributing foveated datapackages according to claim 30, further comprising communicating withthe foveating proxy server according to a multiplexed protocol.
 34. Themethod of distributing foveated data packages according to claim 31converting at least one data package into the foveated data package. 35.The method of distributing foveated data packages according to claim 31,further comprising foveating the requested image into the at least onefoveated image.
 36. The method of distributing foveated data packagesaccording to claim 30, further comprising receiving a request for animage from the client computer; and accessing a storage device todetermine if at least one foveated image is stored thereon.
 37. Themethod of distributing foveated data packages according to claim 30,further comprising requesting the foveated image if the foveated imageis not stored in the storage device.
 38. The method of distributingfoveated data packages according to claim 30, further comprisingreceiving a request for a data package containing the requested imagefrom the client computer and obtain the data package, rewriting the datapackage as a foveated data package, and transmitting the foveated datapackage to the client computer.
 39. The method of distributing foveateddata packages according to claim 30, further comprising receiving arequest for an image from the client computer and obtaining the image,rewriting the image as the foveated image, and transmitting the foveatedimage to the client computer.
 40. The method of distributing foveateddata packages according to claim 30, further comprising maintaining theat least one of the foveated data package and foveated image in thestorage device.
 41. The method of distributing foveated data packagesaccording to claim 30, wherein the client computer communicates with thefoveating proxy server via a network connection, and further comprisingdetermining a transmission rate of the network connection and selectinga foveating technique to minimize a transmission bandwidth based on thetransmission rate.
 42. The method of distributing foveated data packagesaccording to claim 30, wherein the surrogate proxy server is connectedto the network via a thinwire portion of the network.
 43. A method ofdistributing foveated data packages in a network which has thereon afoveating proxy server and a client computer comprising providing afoveating proxy server; and providing at least two surrogate proxyservers communicating with one another, at least one of the at least twosurrogate proxy servers configured to receive an at least one foveatedimage from at least one of the foveating proxy server and a anotherdevice, and another one of the at least two proxy servers configured totransmit the at least one foveated image to at least one of the clientcomputer and a further device, wherein the at least two surrogate proxyservers are cascaded along a multi-hop portion of the network.
 44. Asurrogate proxy arrangement for communicating at least one foveatedimage, which, when executing a computer program, performs the stepscomprising of: (a) receiving the at least one foveated image and atleast one foveated data package generated by a foveating proxy server;and (b) transmitting at least one are of the at least one foveated imageand the at least one foveated data package to at least one of a clientcomputer and a further device.
 45. The surrogate proxy arrangementaccording to claim 44, further comprising the steps of: (c) receiving arequest for data package containing a requested image from the clientcomputer prior to step (a); and (d) requesting at least one of thefoveated image and a foveated data package containing the foveated imagefrom the foveating proxy server prior to step (a).
 46. The surrogateproxy arrangement according to claim 45, wherein the data package is anHTML document.
 47. The surrogate proxy arrangement according to claim44, wherein the receiving step (a) is accomplished using a multiplexedprotocol.
 48. The surrogate proxy arrangement according to claim 45,further comprising the step of: converting at least one data packageinto the foveated data package using a rewriting engine.
 49. Thesurrogate proxy arrangement according to claim 48, further comprisingthe step of: foveating the requested images into the at least onefoveated image using an image foveating engine.
 50. The surrogate proxyarrangement according to claim 44, further comprising the steps of: (c)receiving a request for a data package containing a requested image fromthe client computer prior to the receiving step (a); and (d) accessing astorage device to determine if at least one foveated image is storedthereon.
 51. A method for communicating at least one foveated imagecomprising the steps of: (a) receiving the at least one foveated imageand at least one foveated data package generated by a foveating proxyserver; and (b) transmitting at least one of the at least one foveatedimage and the at least one foveated data package to at least one of aclient computer and a further device.
 52. The method according to claim51, further comprising the steps of: (c) receiving a request for datapackage containing a requested image from the client computer prior tostep (a); and (d) requesting at least one of the foveated image and afoveated data package containing the foveated image from the foveatingproxy server prior to step (a).
 53. The method according to claim 52,wherein the data package is an HTML document.
 54. The method accordingto claim 51, wherein step (a) is accomplished using a multiplexedprotocol.
 55. The method according to claim 52, further comprising thestep of: converting at least one data package into the foveated datapackage using a rewriting engine.
 56. The method according to claim 55,further comprising the step of: foveating the requested images into theat least one foveated image using an image foveating engine.
 57. Themethod according to claim 51, further comprising the steps of: (c)receiving a request for a data package containing a requested image fromthe client computer prior to step (a); and (d) accessing a storagedevice to determine if at least one foveated image is stored thereon.